Выработка решений
-
Предположения
-
Выбор технологий (котлин, фреймворки, где запускать - кубер/ранчер)
-
Проектирование
-
Оценка - сколько стоит реализация решения?
- небольшая фича может пол года занять
- другая фича реализуется быстрее и тоже принесет деньги - это правильнее выбрать на реализацию
Коммуникации
-
Стейкхолдеры
-
Командам - приносит командам конечное решение - управляет ожиданиями
-
Другим архитекторам (не может быть экспертом во всем)
Документирование
-
Как сделано? Какие компоненты в системе? Как развернуто приложение? Какие контракты? Какие предположения сделаны?
-
Почему именно так? (нет неверных архитектур - есть дорогие и неподходящие)
-
Диаграммы
- неформальные нотации
- полуформальныве нотации - C4 model
- формальные нотации
-
Логи архитектурных решений
-
Гайдлайны - чтобы убедиться что команда разработки сделает все необходимое
Проблемы
-
Как приносить решения большого масштаба?
-
Где хранить логи архитектурных решений и диаграммы?
-
Как избежать централизации принятия решений? Bus фактор
-
Как избежать феномена Ivory Tower? Башня из слоновьей кость - архитектор отрывается от быстрого реального мира
Как приносить решения большого масштаба?
Proposals
- RFC - Request for Comments - запрос на комментарии к предлагаемому решению
- документ описания проблемы и вариантов решения
- выносим на обсуждение другим архитекторам
Где хранить логи архитектурных решений и диаграммы?
-
git
-
wiki
-
Документы
Что хотим? Какие варианты? Плюсы и минусы
Как избежать централизации принятия решений? Bus фактор
Децентрализация
-
Обучение
-
Архитектурные комитеты
-
Архитектурные читалки
Общее
-
Уровень решения - организация
-
ИТ стратегия - нужно понимание хотим ли мы идти в облака, продвигать k8s
-
Подходы, коммуникации, платформы
Что вместо архитектора предприятия?
-
Решения на уровне организации - RFC, ADR...
-
Собственная плптформа: CI/CD, Runtime, Monitiring
-
Передача знаний
-
InnerSourcing - временно отдать члена команды другой команде
-
Тех радар - что пропуем, что решили - используем или нет
Книги
-
Documenting Software Architecture - Почему в 1 диаграмме никогда не сможем описать все что хотим
-
Patterns of Enterprise Application Architecture - Мартин Фаулер
-
Building evolutionary architectures - Мир меняется, как должны меняться системы?
Блоги
-
https://vvsevolodovich.dev
-
https://medium.com/@nvashanin